//
// Created by Administrator on 2023/12/23.
/*
 * OJ: https://www.luogu.com.cn/problem/P2043
 * 通过
 * 题解: https://www.luogu.com.cn/problem/solution/P2043
 * P2043 质因子分解
对N! 进行质因子分解。
输入格式

输入数据仅有一行包含一个正整数 N，N≤10000
输出格式

输出数据包含若干行，每行两个正整数 p,a，中间用一个空格隔开。表示 N! 包含 a 个质因子 p，要求按 p 的值从小到大输出。
输入输出样例
输入 #1
10
输出 #1
2 8
3 4
5 2
7 1
说明/提示
10!=3628800=(2^8)×(3^4)×(5^2)×7
 * */
//

#include <iostream>
#include <map>

using namespace std;

int main()
{
    long long n = 23;
    n = 97;
//    n=10;
    cin>>n;
    int arr[n+1]={0};
    long long nn=1;
    for (int j = 2; j <= n; ++j)
    {
        long long t = j;
        for (int i = 2; i * i <= t; ++i)
        {
            if(t%i!=0)
                continue;
            while (t % i == 0)
            {
                arr[i]++;
                t /= i;
            }
        }
        if(t > 1)
            arr[t]++;
    }
    for (int k = 0; k <= n; ++k)
    {
        if(arr[k]>0)
            cout<<k<<' '<<arr[k]<<endl;
    }
    return 0;
}